<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>dual_threshold [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_segmentation.html">分割</a> / <a href="toc_segmentation_threshold.html">阈值</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">dual_threshold</span><span data-if="c" style="display:none;">dual_threshold</span><span data-if="cpp" style="display:none;">DualThreshold</span><span data-if="dotnet" style="display:none;">DualThreshold</span><span data-if="python" style="display:none;">dual_threshold</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">dual_threshold</span><span data-if="c" style="display:none;">dual_threshold</span><span data-if="cpp" style="display:none;">DualThreshold</span><span data-if="dotnet" style="display:none;">DualThreshold</span><span data-if="python" style="display:none;">dual_threshold</span></code> — Threshold operator for signed images.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>dual_threshold</b>(<a href="#Image"><i>Image</i></a> : <a href="#RegionCrossings"><i>RegionCrossings</i></a> : <a href="#MinSize"><i>MinSize</i></a>, <a href="#MinGray"><i>MinGray</i></a>, <a href="#Threshold"><i>Threshold</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>dual_threshold</b>(const Hobject <a href="#Image"><i>Image</i></a>, Hobject* <a href="#RegionCrossings"><i>RegionCrossings</i></a>, const Hlong <a href="#MinSize"><i>MinSize</i></a>, double <a href="#MinGray"><i>MinGray</i></a>, double <a href="#Threshold"><i>Threshold</i></a>)</code></p>
<p>
<code>Herror <b>T_dual_threshold</b>(const Hobject <a href="#Image"><i>Image</i></a>, Hobject* <a href="#RegionCrossings"><i>RegionCrossings</i></a>, const Htuple <a href="#MinSize"><i>MinSize</i></a>, const Htuple <a href="#MinGray"><i>MinGray</i></a>, const Htuple <a href="#Threshold"><i>Threshold</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>DualThreshold</b>(const HObject&amp; <a href="#Image"><i>Image</i></a>, HObject* <a href="#RegionCrossings"><i>RegionCrossings</i></a>, const HTuple&amp; <a href="#MinSize"><i>MinSize</i></a>, const HTuple&amp; <a href="#MinGray"><i>MinGray</i></a>, const HTuple&amp; <a href="#Threshold"><i>Threshold</i></a>)</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HImage.html">HImage</a>::<b>DualThreshold</b>(Hlong <a href="#MinSize"><i>MinSize</i></a>, double <a href="#MinGray"><i>MinGray</i></a>, double <a href="#Threshold"><i>Threshold</i></a>) const</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>DualThreshold</b>(<a href="HObject.html">HObject</a> <a href="#Image"><i>image</i></a>, out <a href="HObject.html">HObject</a> <a href="#RegionCrossings"><i>regionCrossings</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinSize"><i>minSize</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinGray"><i>minGray</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Threshold"><i>threshold</i></a>)</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HImage.html">HImage</a>.<b>DualThreshold</b>(int <a href="#MinSize"><i>minSize</i></a>, double <a href="#MinGray"><i>minGray</i></a>, double <a href="#Threshold"><i>threshold</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>dual_threshold</b>(<a href="#Image"><i>image</i></a>: HObject, <a href="#MinSize"><i>min_size</i></a>: int, <a href="#MinGray"><i>min_gray</i></a>: float, <a href="#Threshold"><i>threshold</i></a>: float) -&gt; HObject</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">dual_threshold</span><span data-if="c" style="display:none">dual_threshold</span><span data-if="cpp" style="display:none">DualThreshold</span><span data-if="com" style="display:none">DualThreshold</span><span data-if="dotnet" style="display:none">DualThreshold</span><span data-if="python" style="display:none">dual_threshold</span></code> segments the input image into a region with
gray values <span title="1" style="vertical-align:-0.207493em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.900873em" height="0.894063em" viewBox="0 0 14.413971 14.305008">
<!-- Original BoundingBox: -7.206985 -7.152496 7.206985 7.152512 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_21">
      <path style="fill-rule: evenodd;" d="M674.000000 -324.000000C688.000000 -330.000000,694.000000 -337.000000,694.000000 -346.000000C694.000000 -356.000000,690.000000 -362.000000,674.000000 -369.000000L123.000000 -629.000000C109.000000 -636.000000,105.000000 -636.000000,103.000000 -636.000000C91.000000 -636.000000,83.000000 -627.000000,83.000000 -616.000000C83.000000 -604.000000,91.000000 -599.000000,102.000000 -594.000000L627.000000 -347.000000L104.000000 -100.000000C84.000000 -91.000000,83.000000 -83.000000,83.000000 -77.000000C83.000000 -66.000000,92.000000 -57.000000,103.000000 -57.000000C106.000000 -57.000000,108.000000 -57.000000,121.000000 -64.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.809006 10.985123)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_21"></use>
  </g>
</svg></span><a href="#Threshold"><i><code><span data-if="hdevelop" style="display:inline">Threshold</span><span data-if="c" style="display:none">Threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">threshold</span><span data-if="python" style="display:none">threshold</span></code></i></a> (“positive”
regions) and a region with gray values <span title="2" style="vertical-align:-0.207493em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.95249em" height="0.894063em" viewBox="0 0 31.239792 14.305008">
<!-- Original BoundingBox: -15.619904 -7.152496 15.619888 7.152512 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_0">
      <path style="fill-rule: evenodd;" d="M659.000000 -230.000000C676.000000 -230.000000,694.000000 -230.000000,694.000000 -250.000000C694.000000 -270.000000,676.000000 -270.000000,659.000000 -270.000000L118.000000 -270.000000C101.000000 -270.000000,83.000000 -270.000000,83.000000 -250.000000C83.000000 -230.000000,101.000000 -230.000000,118.000000 -230.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.396088 10.985123)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,17.221756 10.985123)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
</svg></span><a href="#Threshold"><i><code><span data-if="hdevelop" style="display:inline">Threshold</span><span data-if="c" style="display:none">Threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">threshold</span><span data-if="python" style="display:none">threshold</span></code></i></a>
(“negative” regions). Only “positive” or
“negative” regions having a size larger than <a href="#MinSize"><i><code><span data-if="hdevelop" style="display:inline">MinSize</span><span data-if="c" style="display:none">MinSize</span><span data-if="cpp" style="display:none">MinSize</span><span data-if="com" style="display:none">MinSize</span><span data-if="dotnet" style="display:none">minSize</span><span data-if="python" style="display:none">min_size</span></code></i></a> are
taken into account. And regions whose maximum gray value is less than
<a href="#MinGray"><i><code><span data-if="hdevelop" style="display:inline">MinGray</span><span data-if="c" style="display:none">MinGray</span><span data-if="cpp" style="display:none">MinGray</span><span data-if="com" style="display:none">MinGray</span><span data-if="dotnet" style="display:none">minGray</span><span data-if="python" style="display:none">min_gray</span></code></i></a> in absolute value are suppressed.
</p>
<p>The segmentation performed is not complete, i.e., the “positive”
and “negative” regions together do not necessarily cover the
entire image: Areas with a gray value between
<span title="3" style="vertical-align:-0.165107em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.900873em" height="0.789172em" viewBox="0 0 14.413971 12.626755">
<!-- Original BoundingBox: -7.206985 -6.313370 7.206985 6.313385 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_0">
      <path style="fill-rule: evenodd;" d="M659.000000 -230.000000C676.000000 -230.000000,694.000000 -230.000000,694.000000 -250.000000C694.000000 -270.000000,676.000000 -270.000000,659.000000 -270.000000L118.000000 -270.000000C101.000000 -270.000000,83.000000 -270.000000,83.000000 -250.000000C83.000000 -230.000000,101.000000 -230.000000,118.000000 -230.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.809006 9.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
</svg></span><a href="#Threshold"><i><code><span data-if="hdevelop" style="display:inline">Threshold</span><span data-if="c" style="display:none">Threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">threshold</span><span data-if="python" style="display:none">threshold</span></code></i></a> and
<a href="#Threshold"><i><code><span data-if="hdevelop" style="display:inline">Threshold</span><span data-if="c" style="display:none">Threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">threshold</span><span data-if="python" style="display:none">threshold</span></code></i></a>, <span title="4" style="vertical-align:-0.165107em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.900873em" height="0.789172em" viewBox="0 0 14.413971 12.626755">
<!-- Original BoundingBox: -7.206985 -6.313370 7.206985 6.313385 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_0">
      <path style="fill-rule: evenodd;" d="M659.000000 -230.000000C676.000000 -230.000000,694.000000 -230.000000,694.000000 -250.000000C694.000000 -270.000000,676.000000 -270.000000,659.000000 -270.000000L118.000000 -270.000000C101.000000 -270.000000,83.000000 -270.000000,83.000000 -250.000000C83.000000 -230.000000,101.000000 -230.000000,118.000000 -230.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.809006 9.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
</svg></span><a href="#MinGray"><i><code><span data-if="hdevelop" style="display:inline">MinGray</span><span data-if="c" style="display:none">MinGray</span><span data-if="cpp" style="display:none">MinGray</span><span data-if="com" style="display:none">MinGray</span><span data-if="dotnet" style="display:none">minGray</span><span data-if="python" style="display:none">min_gray</span></code></i></a> and
<a href="#MinGray"><i><code><span data-if="hdevelop" style="display:inline">MinGray</span><span data-if="c" style="display:none">MinGray</span><span data-if="cpp" style="display:none">MinGray</span><span data-if="com" style="display:none">MinGray</span><span data-if="dotnet" style="display:none">minGray</span><span data-if="python" style="display:none">min_gray</span></code></i></a>, respectively, are not taken into account.
</p>
<p><code><span data-if="hdevelop" style="display:inline">dual_threshold</span><span data-if="c" style="display:none">dual_threshold</span><span data-if="cpp" style="display:none">DualThreshold</span><span data-if="com" style="display:none">DualThreshold</span><span data-if="dotnet" style="display:none">DualThreshold</span><span data-if="python" style="display:none">dual_threshold</span></code> is usually called after applying a Laplace
operator (<a href="laplace.html"><code><span data-if="hdevelop" style="display:inline">laplace</span><span data-if="c" style="display:none">laplace</span><span data-if="cpp" style="display:none">Laplace</span><span data-if="com" style="display:none">Laplace</span><span data-if="dotnet" style="display:none">Laplace</span><span data-if="python" style="display:none">laplace</span></code></a>, <a href="laplace_of_gauss.html"><code><span data-if="hdevelop" style="display:inline">laplace_of_gauss</span><span data-if="c" style="display:none">laplace_of_gauss</span><span data-if="cpp" style="display:none">LaplaceOfGauss</span><span data-if="com" style="display:none">LaplaceOfGauss</span><span data-if="dotnet" style="display:none">LaplaceOfGauss</span><span data-if="python" style="display:none">laplace_of_gauss</span></code></a>,
<a href="derivate_gauss.html"><code><span data-if="hdevelop" style="display:inline">derivate_gauss</span><span data-if="c" style="display:none">derivate_gauss</span><span data-if="cpp" style="display:none">DerivateGauss</span><span data-if="com" style="display:none">DerivateGauss</span><span data-if="dotnet" style="display:none">DerivateGauss</span><span data-if="python" style="display:none">derivate_gauss</span></code></a> or <a href="diff_of_gauss.html"><code><span data-if="hdevelop" style="display:inline">diff_of_gauss</span><span data-if="c" style="display:none">diff_of_gauss</span><span data-if="cpp" style="display:none">DiffOfGauss</span><span data-if="com" style="display:none">DiffOfGauss</span><span data-if="dotnet" style="display:none">DiffOfGauss</span><span data-if="python" style="display:none">diff_of_gauss</span></code></a>) to an image or with
the difference of two images (<a href="sub_image.html"><code><span data-if="hdevelop" style="display:inline">sub_image</span><span data-if="c" style="display:none">sub_image</span><span data-if="cpp" style="display:none">SubImage</span><span data-if="com" style="display:none">SubImage</span><span data-if="dotnet" style="display:none">SubImage</span><span data-if="python" style="display:none">sub_image</span></code></a>).
</p>
<p>The zero crossings of a Laplace image correspond to edges in an
image, and are the separating regions of the “positive” and
“negative” regions in the Laplace image.  They can be determined
by calling <code><span data-if="hdevelop" style="display:inline">dual_threshold</span><span data-if="c" style="display:none">dual_threshold</span><span data-if="cpp" style="display:none">DualThreshold</span><span data-if="com" style="display:none">DualThreshold</span><span data-if="dotnet" style="display:none">DualThreshold</span><span data-if="python" style="display:none">dual_threshold</span></code> with <a href="#Threshold"><i><code><span data-if="hdevelop" style="display:inline">Threshold</span><span data-if="c" style="display:none">Threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">threshold</span><span data-if="python" style="display:none">threshold</span></code></i></a> = 1 and
then creating the complement regions with <a href="complement.html"><code><span data-if="hdevelop" style="display:inline">complement</span><span data-if="c" style="display:none">complement</span><span data-if="cpp" style="display:none">Complement</span><span data-if="com" style="display:none">Complement</span><span data-if="dotnet" style="display:none">Complement</span><span data-if="python" style="display:none">complement</span></code></a>. The
parameter <a href="#MinGray"><i><code><span data-if="hdevelop" style="display:inline">MinGray</span><span data-if="c" style="display:none">MinGray</span><span data-if="cpp" style="display:none">MinGray</span><span data-if="com" style="display:none">MinGray</span><span data-if="dotnet" style="display:none">minGray</span><span data-if="python" style="display:none">min_gray</span></code></i></a> determines the noise invariance, while
<a href="#MinSize"><i><code><span data-if="hdevelop" style="display:inline">MinSize</span><span data-if="c" style="display:none">MinSize</span><span data-if="cpp" style="display:none">MinSize</span><span data-if="com" style="display:none">MinSize</span><span data-if="dotnet" style="display:none">minSize</span><span data-if="python" style="display:none">min_size</span></code></i></a> determines the resolution of the edge detection.
</p>
<p>Using byte images, only the positive part of 该算子 is
applied. Therefore <code><span data-if="hdevelop" style="display:inline">dual_threshold</span><span data-if="c" style="display:none">dual_threshold</span><span data-if="cpp" style="display:none">DualThreshold</span><span data-if="com" style="display:none">DualThreshold</span><span data-if="dotnet" style="display:none">DualThreshold</span><span data-if="python" style="display:none">dual_threshold</span></code> behaves like a standard
threshold operator (<a href="threshold.html"><code><span data-if="hdevelop" style="display:inline">threshold</span><span data-if="c" style="display:none">threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">Threshold</span><span data-if="python" style="display:none">threshold</span></code></a>) with successive
<a href="connection.html"><code><span data-if="hdevelop" style="display:inline">connection</span><span data-if="c" style="display:none">connection</span><span data-if="cpp" style="display:none">Connection</span><span data-if="com" style="display:none">Connection</span><span data-if="dotnet" style="display:none">Connection</span><span data-if="python" style="display:none">connection</span></code></a> and <a href="select_gray.html"><code><span data-if="hdevelop" style="display:inline">select_gray</span><span data-if="c" style="display:none">select_gray</span><span data-if="cpp" style="display:none">SelectGray</span><span data-if="com" style="display:none">SelectGray</span><span data-if="dotnet" style="display:none">SelectGray</span><span data-if="python" style="display:none">select_gray</span></code></a>.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>在元组级别自动并行化。</li>
    <li>Automatically parallelized on internal data level.</li>
  
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Image" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></b> (input_object)  </span><span>singlechannelimage(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (byte / int1 / int2 / int4 / real)</span>
</div>
<p class="pardesc">Input image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="RegionCrossings" class="parname"><b><code><span data-if="hdevelop" style="display:inline">RegionCrossings</span><span data-if="c" style="display:none">RegionCrossings</span><span data-if="cpp" style="display:none">RegionCrossings</span><span data-if="com" style="display:none">RegionCrossings</span><span data-if="dotnet" style="display:none">regionCrossings</span><span data-if="python" style="display:none">region_crossings</span></code></b> (output_object)  </span><span>region-array <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="c" style="display:none">Hobject *</span></span>
</div>
<p class="pardesc">Positive and negative regions.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="MinSize" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MinSize</span><span data-if="c" style="display:none">MinSize</span><span data-if="cpp" style="display:none">MinSize</span><span data-if="com" style="display:none">MinSize</span><span data-if="dotnet" style="display:none">minSize</span><span data-if="python" style="display:none">min_size</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Regions smaller than MinSize are suppressed.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>20</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 10, 20, 50, 100, 200, 500, 1000</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>0
          ≤
        
    <span data-if="hdevelop" style="display:inline">MinSize</span>
    <span data-if="c" style="display:none">MinSize</span>
    <span data-if="cpp" style="display:none">MinSize</span>
    <span data-if="com" style="display:none">MinSize</span>
    <span data-if="dotnet" style="display:none">minSize</span>
    <span data-if="python" style="display:none">min_size</span>
    
          ≤
          10000</code> (lin)</p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>1</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>10</p>
</div>
  <div class="par">
<div class="parhead">
<span id="MinGray" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MinGray</span><span data-if="c" style="display:none">MinGray</span><span data-if="cpp" style="display:none">MinGray</span><span data-if="com" style="display:none">MinGray</span><span data-if="dotnet" style="display:none">minGray</span><span data-if="python" style="display:none">min_gray</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Regions whose maximum absolute gray value is smaller
than MinGray are suppressed.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>5.0</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 9.0, 11.0, 15.0, 20.0</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>0
          ≤
        
    <span data-if="hdevelop" style="display:inline">MinGray</span>
    <span data-if="c" style="display:none">MinGray</span>
    <span data-if="cpp" style="display:none">MinGray</span>
    <span data-if="com" style="display:none">MinGray</span>
    <span data-if="dotnet" style="display:none">minGray</span>
    <span data-if="python" style="display:none">min_gray</span>
    </code> (lin)</p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>1.0</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>10.0</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Threshold" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Threshold</span><span data-if="c" style="display:none">Threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">threshold</span><span data-if="python" style="display:none">threshold</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Regions that have a gray value smaller than Threshold
(or larger than -Threshold) are suppressed.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>2.0</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 9.0, 11.0, 15.0, 20.0</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>0
          ≤
        
    <span data-if="hdevelop" style="display:inline">Threshold</span>
    <span data-if="c" style="display:none">Threshold</span>
    <span data-if="cpp" style="display:none">Threshold</span>
    <span data-if="com" style="display:none">Threshold</span>
    <span data-if="dotnet" style="display:none">threshold</span>
    <span data-if="python" style="display:none">threshold</span>
    </code> (lin)</p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>1.0</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>10.0</p>
</div>
<div data-if="hdevelop" style="display:inline">
<h2 id="sec_example_hdevelop">例程 (HDevelop)</h2>
<pre class="example">
* Edge detection with the Laplace operator (and edge thinning)
diff_of_gauss(Image,Laplace,2.0,1.6)
* find "`positive"' and "`negative"' regions:
dual_threshold(Laplace,Region,20,2,1)
* The zero runnings are the complement to these image section:
complement(Region,ZeroCrossings)

* Simulation of dual_threshold
dual_threshold(Laplace,Result,MinS,MinG,Threshold)
threshold(Laplace,Tmp1,Threshold,999999)
connection(Tmp1,Tmp2)
select_shape(Tmp2,Tmp3,'area','and',MinS,999999)
select_gray(Laplace,Tmp3,Tmp4,'max','and',MinG,999999)
threshold(Laplace,Tmp5,-999999,-Threshold)
connection(Tmp5,Tmp6)
select_shape(Tmp6,Tmp7,'area','and',MinS,999999)
select_gray(Laplace,Tmp7,Tmp8,'min','and',-999999,-MinG)
concat_obj(Tmp4,Tmp8,Result)
</pre>
</div>
<div data-if="c" style="display:none">
<h2 id="sec_example_c">例程 (C)</h2>
<pre class="example">
/* Edge detection with the Laplace operator (and edge thinning) */
diff_of_gauss(Image,&amp;Laplace,2.0,1.6);
/* find "`positive"' and "`negative"' regions: */
dual_threshold(Laplace,&amp;Region,20,2,1);
/*The zero runnings are the complement to these image section: */
complement(Region,ZeroCrossings);
</pre>
</div>
<div data-if="cpp" style="display:none">
<h2 id="sec_example_cpp">例程 (HDevelop)</h2>
<pre class="example">
* Edge detection with the Laplace operator (and edge thinning)
diff_of_gauss(Image,Laplace,2.0,1.6)
* find "`positive"' and "`negative"' regions:
dual_threshold(Laplace,Region,20,2,1)
* The zero runnings are the complement to these image section:
complement(Region,ZeroCrossings)

* Simulation of dual_threshold
dual_threshold(Laplace,Result,MinS,MinG,Threshold)
threshold(Laplace,Tmp1,Threshold,999999)
connection(Tmp1,Tmp2)
select_shape(Tmp2,Tmp3,'area','and',MinS,999999)
select_gray(Laplace,Tmp3,Tmp4,'max','and',MinG,999999)
threshold(Laplace,Tmp5,-999999,-Threshold)
connection(Tmp5,Tmp6)
select_shape(Tmp6,Tmp7,'area','and',MinS,999999)
select_gray(Laplace,Tmp7,Tmp8,'min','and',-999999,-MinG)
concat_obj(Tmp4,Tmp8,Result)
</pre>
</div>
<div data-if="com" style="display:none">
<h2 id="sec_example_com">例程 (HDevelop)</h2>
<pre class="example">
* Edge detection with the Laplace operator (and edge thinning)
diff_of_gauss(Image,Laplace,2.0,1.6)
* find "`positive"' and "`negative"' regions:
dual_threshold(Laplace,Region,20,2,1)
* The zero runnings are the complement to these image section:
complement(Region,ZeroCrossings)

* Simulation of dual_threshold
dual_threshold(Laplace,Result,MinS,MinG,Threshold)
threshold(Laplace,Tmp1,Threshold,999999)
connection(Tmp1,Tmp2)
select_shape(Tmp2,Tmp3,'area','and',MinS,999999)
select_gray(Laplace,Tmp3,Tmp4,'max','and',MinG,999999)
threshold(Laplace,Tmp5,-999999,-Threshold)
connection(Tmp5,Tmp6)
select_shape(Tmp6,Tmp7,'area','and',MinS,999999)
select_gray(Laplace,Tmp7,Tmp8,'min','and',-999999,-MinG)
concat_obj(Tmp4,Tmp8,Result)
</pre>
</div>
<div data-if="dotnet" style="display:none">
<h2 id="sec_example_dotnet">例程 (HDevelop)</h2>
<pre class="example">
* Edge detection with the Laplace operator (and edge thinning)
diff_of_gauss(Image,Laplace,2.0,1.6)
* find "`positive"' and "`negative"' regions:
dual_threshold(Laplace,Region,20,2,1)
* The zero runnings are the complement to these image section:
complement(Region,ZeroCrossings)

* Simulation of dual_threshold
dual_threshold(Laplace,Result,MinS,MinG,Threshold)
threshold(Laplace,Tmp1,Threshold,999999)
connection(Tmp1,Tmp2)
select_shape(Tmp2,Tmp3,'area','and',MinS,999999)
select_gray(Laplace,Tmp3,Tmp4,'max','and',MinG,999999)
threshold(Laplace,Tmp5,-999999,-Threshold)
connection(Tmp5,Tmp6)
select_shape(Tmp6,Tmp7,'area','and',MinS,999999)
select_gray(Laplace,Tmp7,Tmp8,'min','and',-999999,-MinG)
concat_obj(Tmp4,Tmp8,Result)
</pre>
</div>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">dual_threshold</span><span data-if="c" style="display:none">dual_threshold</span><span data-if="cpp" style="display:none">DualThreshold</span><span data-if="com" style="display:none">DualThreshold</span><span data-if="dotnet" style="display:none">DualThreshold</span><span data-if="python" style="display:none">dual_threshold</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameters are
correct.  The behavior with respect to the input images and output
regions can be determined by setting the values of the flags
<i><span data-if="hdevelop" style="display:inline">'no_object_result'</span><span data-if="c" style="display:none">"no_object_result"</span><span data-if="cpp" style="display:none">"no_object_result"</span><span data-if="com" style="display:none">"no_object_result"</span><span data-if="dotnet" style="display:none">"no_object_result"</span><span data-if="python" style="display:none">"no_object_result"</span></i>, <i><span data-if="hdevelop" style="display:inline">'empty_region_result'</span><span data-if="c" style="display:none">"empty_region_result"</span><span data-if="cpp" style="display:none">"empty_region_result"</span><span data-if="com" style="display:none">"empty_region_result"</span><span data-if="dotnet" style="display:none">"empty_region_result"</span><span data-if="python" style="display:none">"empty_region_result"</span></i>, and
<i><span data-if="hdevelop" style="display:inline">'store_empty_region'</span><span data-if="c" style="display:none">"store_empty_region"</span><span data-if="cpp" style="display:none">"store_empty_region"</span><span data-if="com" style="display:none">"store_empty_region"</span><span data-if="dotnet" style="display:none">"store_empty_region"</span><span data-if="python" style="display:none">"store_empty_region"</span></i> with <a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></code></a>.
如有必要，将引发异常。</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="min_max_gray.html"><span data-if="hdevelop" style="display:inline">min_max_gray</span><span data-if="c" style="display:none">min_max_gray</span><span data-if="cpp" style="display:none">MinMaxGray</span><span data-if="com" style="display:none">MinMaxGray</span><span data-if="dotnet" style="display:none">MinMaxGray</span><span data-if="python" style="display:none">min_max_gray</span></a></code>, 
<code><a href="sobel_amp.html"><span data-if="hdevelop" style="display:inline">sobel_amp</span><span data-if="c" style="display:none">sobel_amp</span><span data-if="cpp" style="display:none">SobelAmp</span><span data-if="com" style="display:none">SobelAmp</span><span data-if="dotnet" style="display:none">SobelAmp</span><span data-if="python" style="display:none">sobel_amp</span></a></code>, 
<code><a href="binomial_filter.html"><span data-if="hdevelop" style="display:inline">binomial_filter</span><span data-if="c" style="display:none">binomial_filter</span><span data-if="cpp" style="display:none">BinomialFilter</span><span data-if="com" style="display:none">BinomialFilter</span><span data-if="dotnet" style="display:none">BinomialFilter</span><span data-if="python" style="display:none">binomial_filter</span></a></code>, 
<code><a href="gauss_filter.html"><span data-if="hdevelop" style="display:inline">gauss_filter</span><span data-if="c" style="display:none">gauss_filter</span><span data-if="cpp" style="display:none">GaussFilter</span><span data-if="com" style="display:none">GaussFilter</span><span data-if="dotnet" style="display:none">GaussFilter</span><span data-if="python" style="display:none">gauss_filter</span></a></code>, 
<code><a href="reduce_domain.html"><span data-if="hdevelop" style="display:inline">reduce_domain</span><span data-if="c" style="display:none">reduce_domain</span><span data-if="cpp" style="display:none">ReduceDomain</span><span data-if="com" style="display:none">ReduceDomain</span><span data-if="dotnet" style="display:none">ReduceDomain</span><span data-if="python" style="display:none">reduce_domain</span></a></code>, 
<code><a href="diff_of_gauss.html"><span data-if="hdevelop" style="display:inline">diff_of_gauss</span><span data-if="c" style="display:none">diff_of_gauss</span><span data-if="cpp" style="display:none">DiffOfGauss</span><span data-if="com" style="display:none">DiffOfGauss</span><span data-if="dotnet" style="display:none">DiffOfGauss</span><span data-if="python" style="display:none">diff_of_gauss</span></a></code>, 
<code><a href="sub_image.html"><span data-if="hdevelop" style="display:inline">sub_image</span><span data-if="c" style="display:none">sub_image</span><span data-if="cpp" style="display:none">SubImage</span><span data-if="com" style="display:none">SubImage</span><span data-if="dotnet" style="display:none">SubImage</span><span data-if="python" style="display:none">sub_image</span></a></code>, 
<code><a href="derivate_gauss.html"><span data-if="hdevelop" style="display:inline">derivate_gauss</span><span data-if="c" style="display:none">derivate_gauss</span><span data-if="cpp" style="display:none">DerivateGauss</span><span data-if="com" style="display:none">DerivateGauss</span><span data-if="dotnet" style="display:none">DerivateGauss</span><span data-if="python" style="display:none">derivate_gauss</span></a></code>, 
<code><a href="laplace_of_gauss.html"><span data-if="hdevelop" style="display:inline">laplace_of_gauss</span><span data-if="c" style="display:none">laplace_of_gauss</span><span data-if="cpp" style="display:none">LaplaceOfGauss</span><span data-if="com" style="display:none">LaplaceOfGauss</span><span data-if="dotnet" style="display:none">LaplaceOfGauss</span><span data-if="python" style="display:none">laplace_of_gauss</span></a></code>, 
<code><a href="laplace.html"><span data-if="hdevelop" style="display:inline">laplace</span><span data-if="c" style="display:none">laplace</span><span data-if="cpp" style="display:none">Laplace</span><span data-if="com" style="display:none">Laplace</span><span data-if="dotnet" style="display:none">Laplace</span><span data-if="python" style="display:none">laplace</span></a></code>, 
<code><a href="expand_region.html"><span data-if="hdevelop" style="display:inline">expand_region</span><span data-if="c" style="display:none">expand_region</span><span data-if="cpp" style="display:none">ExpandRegion</span><span data-if="com" style="display:none">ExpandRegion</span><span data-if="dotnet" style="display:none">ExpandRegion</span><span data-if="python" style="display:none">expand_region</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="connection.html"><span data-if="hdevelop" style="display:inline">connection</span><span data-if="c" style="display:none">connection</span><span data-if="cpp" style="display:none">Connection</span><span data-if="com" style="display:none">Connection</span><span data-if="dotnet" style="display:none">Connection</span><span data-if="python" style="display:none">connection</span></a></code>, 
<code><a href="dilation1.html"><span data-if="hdevelop" style="display:inline">dilation1</span><span data-if="c" style="display:none">dilation1</span><span data-if="cpp" style="display:none">Dilation1</span><span data-if="com" style="display:none">Dilation1</span><span data-if="dotnet" style="display:none">Dilation1</span><span data-if="python" style="display:none">dilation1</span></a></code>, 
<code><a href="erosion1.html"><span data-if="hdevelop" style="display:inline">erosion1</span><span data-if="c" style="display:none">erosion1</span><span data-if="cpp" style="display:none">Erosion1</span><span data-if="com" style="display:none">Erosion1</span><span data-if="dotnet" style="display:none">Erosion1</span><span data-if="python" style="display:none">erosion1</span></a></code>, 
<code><a href="opening.html"><span data-if="hdevelop" style="display:inline">opening</span><span data-if="c" style="display:none">opening</span><span data-if="cpp" style="display:none">Opening</span><span data-if="com" style="display:none">Opening</span><span data-if="dotnet" style="display:none">Opening</span><span data-if="python" style="display:none">opening</span></a></code>, 
<code><a href="closing.html"><span data-if="hdevelop" style="display:inline">closing</span><span data-if="c" style="display:none">closing</span><span data-if="cpp" style="display:none">Closing</span><span data-if="com" style="display:none">Closing</span><span data-if="dotnet" style="display:none">Closing</span><span data-if="python" style="display:none">closing</span></a></code>, 
<code><a href="rank_region.html"><span data-if="hdevelop" style="display:inline">rank_region</span><span data-if="c" style="display:none">rank_region</span><span data-if="cpp" style="display:none">RankRegion</span><span data-if="com" style="display:none">RankRegion</span><span data-if="dotnet" style="display:none">RankRegion</span><span data-if="python" style="display:none">rank_region</span></a></code>, 
<code><a href="shape_trans.html"><span data-if="hdevelop" style="display:inline">shape_trans</span><span data-if="c" style="display:none">shape_trans</span><span data-if="cpp" style="display:none">ShapeTrans</span><span data-if="com" style="display:none">ShapeTrans</span><span data-if="dotnet" style="display:none">ShapeTrans</span><span data-if="python" style="display:none">shape_trans</span></a></code>, 
<code><a href="skeleton.html"><span data-if="hdevelop" style="display:inline">skeleton</span><span data-if="c" style="display:none">skeleton</span><span data-if="cpp" style="display:none">Skeleton</span><span data-if="com" style="display:none">Skeleton</span><span data-if="dotnet" style="display:none">Skeleton</span><span data-if="python" style="display:none">skeleton</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="threshold.html"><span data-if="hdevelop" style="display:inline">threshold</span><span data-if="c" style="display:none">threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">Threshold</span><span data-if="python" style="display:none">threshold</span></a></code>, 
<code><a href="dyn_threshold.html"><span data-if="hdevelop" style="display:inline">dyn_threshold</span><span data-if="c" style="display:none">dyn_threshold</span><span data-if="cpp" style="display:none">DynThreshold</span><span data-if="com" style="display:none">DynThreshold</span><span data-if="dotnet" style="display:none">DynThreshold</span><span data-if="python" style="display:none">dyn_threshold</span></a></code>, 
<code><a href="check_difference.html"><span data-if="hdevelop" style="display:inline">check_difference</span><span data-if="c" style="display:none">check_difference</span><span data-if="cpp" style="display:none">CheckDifference</span><span data-if="com" style="display:none">CheckDifference</span><span data-if="dotnet" style="display:none">CheckDifference</span><span data-if="python" style="display:none">check_difference</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="connection.html"><span data-if="hdevelop" style="display:inline">connection</span><span data-if="c" style="display:none">connection</span><span data-if="cpp" style="display:none">Connection</span><span data-if="com" style="display:none">Connection</span><span data-if="dotnet" style="display:none">Connection</span><span data-if="python" style="display:none">connection</span></a></code>, 
<code><a href="select_shape.html"><span data-if="hdevelop" style="display:inline">select_shape</span><span data-if="c" style="display:none">select_shape</span><span data-if="cpp" style="display:none">SelectShape</span><span data-if="com" style="display:none">SelectShape</span><span data-if="dotnet" style="display:none">SelectShape</span><span data-if="python" style="display:none">select_shape</span></a></code>, 
<code><a href="select_gray.html"><span data-if="hdevelop" style="display:inline">select_gray</span><span data-if="c" style="display:none">select_gray</span><span data-if="cpp" style="display:none">SelectGray</span><span data-if="com" style="display:none">SelectGray</span><span data-if="dotnet" style="display:none">SelectGray</span><span data-if="python" style="display:none">select_gray</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
